/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.upc.proyecto.dao.hibernate;

import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import pe.edu.upc.proyecto.domain.Usuarios;
import pe.edu.upc.proyecto.dao.UsuariosDao;



@Repository
public class UsuariosDaoHibernate extends HibernateDaoSupport implements UsuariosDao {

    @Autowired
    public UsuariosDaoHibernate(SessionFactory sessionFactory) {
        setSessionFactory(sessionFactory);
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<Usuarios> obtenerUsuarios() {
        return getHibernateTemplate().find("from Usuario");
    }

    @Override
    public Usuarios obtenerUsuario(int id) {
        return (Usuarios) getSession().createQuery("from Usuarios d where d.codigo = ?").setInteger(0, id).uniqueResult();
    }

    @Override
    public void grabarUsuario(Usuarios obj) {
        getHibernateTemplate().saveOrUpdate(obj);
    }

    @Override
    public void removerUsuario(int id) {
        Usuarios obj = obtenerUsuario(id);
        getHibernateTemplate().delete(obj);
    }
 

    @Override
    public Usuarios obtenerUsuario(Usuarios usuario) {
        return (Usuarios) getSession().
                createQuery("from Usuarios d" + "  where d.email = ? and d.clave = ?").
                setString(0, usuario.getEmail()).setString(1, usuario.getClave()).uniqueResult();
    }

}
